layui.use(['table', 'layer', 'formSelects'], function () {
    var layer = parent.layer === undefined ? layui.layer : top.layer,
        $ = layui.jquery,
        table = layui.table;

    var formSelects = layui.formSelects;
    /**
     * 加载数据表格
     */
    var tableIns = table.render({
        id: 'discountTable'
        // 容器元素的ID属性值
        , elem: '#discountList'
        // 容器的高度 full-差值
        , height: 'full-125'
        // 单元格最小的宽度
        , cellMinWidth: 95
        // 访问数据的URL（后台的数据接口）
        , url: ctx + '/discount/list'
        // 开启分页
        , page: true
        // 默认每页显示的数量
        , limit: 10
        // 每页页数的可选项
        , limits: [10, 20, 30, 40, 50]
        // 开启头部工具栏
        , toolbar: '#toolbarDemo'
        // 表头
        , cols: [[
            // field：要求field属性值与返回的数据中对应的属性字段名一致
            // title：设置列的标题
            // sort：是否允许排序（默认：false）
            // fixed：固定列
            {field: 'id', title: '编号', sort: true, align: "center", width: 80}
            , {field: 'name', title: '优惠券名称', align: 'center',}
            , {
                field: 'type', title: '优惠券类型', align: 'center', templet: function (d) {
                    // 调用函数，返回格式化的结果
                    return formatTypeResult(d.type);
                }
            }
            , {
                field: 'useType', title: '可使用商品', align: 'center', templet: function (d) {
                    // 调用函数，返回格式化的结果
                    return formatUserTypeResult(d.useType);
                }
            }
            , {field: 'minPoint', title: '使用门槛', align: 'center'}
            , {field: 'amount', title: '优惠券面值', align: 'center'}
            , {
                field: 'platform', title: '适用平台', align: 'center', templet: function (d) {
                    // 调用函数，返回格式化的结果
                    return formatPlatformResult(d.platform);
                }
            }
            , {field: 'validTime', width: 200, title: '有效期', align: 'center'}
            , {
                field: 'status', title: '状态', align: 'center', templet: function (d) {
                    // 调用函数，返回格式化的结果
                    return formatStatusResult(d.status);
                }
            }
            , {title: '操作', templet: '#discountListBar', fixed: 'right', align: 'center', minWidth: 150}
        ]]
    });


    /**
     * 监听行工具栏
     */
    table.on('tool(discount_lay)', function (data) {

        if (data.event == "search") { //获取event
            // 打开查看优惠券领取信息
            openDiscountData(data.data.id);
        } else if (data.event == "edit") {
            // 打开查看优惠券领取信息
            openDiscountEdit(data.data.id);
        }else if (data.event=='del'){
            //进行删除操作
            deleteDiscount(data.data.id);
        }
    });


    /**
     * 格式化type类型
     */
    function formatTypeResult(type) {
        if (type == 0) {
            return "<p>全场赠券</p>>";
        } else if (type == 1) {
            return "<p>会员赠券</p>>";
        } else if (type == 2) {
            return "<p>购物赠券</p>>";
        } else if (type == 3) {
            return "<p>注册赠券</p>>";
        }
    }


    /**
     * 格式化useType类型
     */
    function formatUserTypeResult(useType) {
        if (useType == 0) {
            return "<p>全场通用</p>>";
        } else if (useType == 1) {
            return "<p>指定分类</p>>";
        } else if (useType == 2) {
            return "<p>指定商品</p>>";
        }
    }


    /**
     * 格式platform类型
     * @param platform
     */
    function formatPlatformResult(platform) {
        if (platform == 0) {
            return "<p>全部</p>>";
        } else if (platform == 1) {
            return "<p>移动端</p>>";
        } else if (platform == 2) {
            return "<p>PC</p>>";
        }
    }

    /**
     * 格式化Status
     */
    function formatStatusResult(status) {
        if (status == 0) {
            return "<p >未过期</p>>";
        } else if (status == 1) {
            return "<p style='color: orangered'>过期</p>";
        }
    }

    /**
     * 优惠券详情框
     *
     * 配置远程搜索, 请求头, 请求参数, 请求类型等
     *
     * formSelects.config(ID, Options, isJson);
     *
     * @param ID        xm-select的值
     * @param Options   配置项
     * @param isJson    是否传输json数据, true将添加请求头 Content-Type: application/json; charset=UTF-8
     */
    formSelects.config("selectId", {
        type: "post", // 请求方式
        searchUrl: ctx + "/discount/queryDiscountType", // 请求地址
        keyName: 'discountName',  // 下拉框中的文本内容，要与返回的数据中对应key一致
        keyVal: 'id'
    }, true);

    /**
     * 搜索按钮的点击事件
     */
    $(".search_btn").click(function () {
        /**
         * 表格重载
         *  多条件查询
         */
        tableIns.reload({
            // 设置需要传递给后端的参数
            where: { //设定异步数据接口的额外参数，任意设
                // 通过文本框，设置传递的参数
                name: $("[name='discountName']").val() // 优惠券名称
                , type: $("[name='discountIds']").val() //优惠券id
            }
            , page: {
                curr: 1 // 重新从第 1 页开始
            }
        });
    });


    /**
     * 跳转到优惠券领取详情页面
     * @param id
     */
    function openDiscountData(id) {
        var url = ctx + "/discount/discount_data?id=" + id;
        var title = "<h3>优惠券详情</h3>";
        // iframe层
        layui.layer.open({
            // 类型
            type: 2,
            // 标题
            title: title,
            // 宽高
            area: ["100%", "100%"],
            // url地址
            content: url,
            // 可以最大化与最小化
            maxmin:true
        });
    }

    /**
     * 跳转到优惠券编辑页面
     * @param id
     */
    function openDiscountEdit(id) {
        var url = ctx + "/discount/discount_update?id=" + id;
        var title = "<h3>优惠券编辑</h3>";
        // iframe层
        layui.layer.open({
            // 类型
            type: 2,
            // 标题
            title: title,
            // 宽高
            area: ["100%", "100%"],
            // url地址
            content: url,
            // 可以最大化与最小化
            maxmin:true
        });
    }

    /**
     * 删除优惠券
     * @param id
     */
    function deleteDiscount(id){
        // 弹出确认框，询问用户是否确认删除
        layer.confirm('确定要删除该记录吗？',{icon:3, title:"优惠券管理"}, function (index) {
            // 关闭确认框
            layer.close(index);
            // 发送ajax请求，删除记录
            $.ajax({
                type:"post",
                url:ctx + "/discount/deleteDiscount",
                data:{
                    id:id
                },
                success:function (result) {
                    // 判断删除结果
                    if (result.code == 200) {
                        // 提示成功
                        layer.msg("删除成功！",{icon:6});
                        // 刷新表格
                        tableIns.reload();
                    } else {
                        // 提示失败
                        layer.msg(result.msg, {icon:5});
                    }
                }
            });
        });
    }
});